home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / AUTOCK1.PAK / ACLIKDOC.CPP next >
C/C++ Source or Header  |  1997-05-06  |  3KB  |  132 lines

  1. // AClikDoc.cpp : implementation of the CAutoClickDoc class
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1995 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #include "stdafx.h"
  14. #include "AutoClik.h"
  15.  
  16. #include "AClikDoc.h"
  17. #include "Dialogs.h"
  18.  
  19. #ifdef _DEBUG
  20. #define new DEBUG_NEW
  21. #undef THIS_FILE
  22. static char THIS_FILE[] = __FILE__;
  23. #endif
  24.  
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CAutoClickDoc
  27.  
  28. IMPLEMENT_DYNCREATE(CAutoClickDoc, CDocument)
  29.  
  30. BEGIN_MESSAGE_MAP(CAutoClickDoc, CDocument)
  31.     //{{AFX_MSG_MAP(CAutoClickDoc)
  32.     ON_COMMAND(ID_EDIT_CHANGETEXT, OnEditChangetext)
  33.     //}}AFX_MSG_MAP
  34. END_MESSAGE_MAP()
  35.  
  36. BEGIN_DISPATCH_MAP(CAutoClickDoc, CDocument)
  37.     //{{AFX_DISPATCH_MAP(CAutoClickDoc)
  38.         // NOTE - the ClassWizard will add and remove mapping macros here.
  39.         //      DO NOT EDIT what you see in these blocks of generated code!
  40.     //}}AFX_DISPATCH_MAP
  41. END_DISPATCH_MAP()
  42.  
  43. // Note: we add support for IID_IAClick to support typesafe binding
  44. //  from VBA.  This IID must match the GUID that is attached to the 
  45. //  dispinterface in the .ODL file.
  46.  
  47. // {47D53E05-CC33-11CE-8F35-00DD01109044}
  48. static const IID IID_IAClick =
  49. { 0x47d53e05, 0xcc33, 0x11ce, { 0x8f, 0x35, 0x0, 0xdd, 0x1, 0x10, 0x90, 0x44 } };
  50.  
  51. BEGIN_INTERFACE_MAP(CAutoClickDoc, CDocument)
  52.     INTERFACE_PART(CAutoClickDoc, IID_IAClick, Dispatch)
  53. END_INTERFACE_MAP()
  54.  
  55. /////////////////////////////////////////////////////////////////////////////
  56. // CAutoClickDoc construction/destruction
  57.  
  58. CAutoClickDoc::CAutoClickDoc()
  59. {
  60.     EnableAutomation();
  61.     m_pt = CPoint(10, 10);
  62.     m_str = _T("Automation!");
  63.  
  64.     AfxOleLockApp();
  65. }
  66.  
  67. CAutoClickDoc::~CAutoClickDoc()
  68. {
  69.     AfxOleUnlockApp();
  70. }
  71.  
  72. BOOL CAutoClickDoc::OnNewDocument()
  73. {
  74.     if (!CDocument::OnNewDocument())
  75.         return FALSE;
  76.  
  77.     // TODO: add reinitialization code here
  78.     // (SDI documents will reuse this document)
  79.  
  80.     return TRUE;
  81. }
  82.  
  83. void CAutoClickDoc::Refresh()
  84. {
  85.     UpdateAllViews(NULL);
  86.     SetModifiedFlag();
  87. }
  88.  
  89. /////////////////////////////////////////////////////////////////////////////
  90. // CAutoClickDoc serialization
  91.  
  92. void CAutoClickDoc::Serialize(CArchive& ar)
  93. {
  94.     if (ar.IsStoring())
  95.     {
  96.         ar << m_pt << m_str;
  97.     }
  98.     else
  99.     {
  100.         ar >> m_pt >> m_str;
  101.     }
  102. }
  103.  
  104. /////////////////////////////////////////////////////////////////////////////
  105. // CAutoClickDoc diagnostics
  106.  
  107. #ifdef _DEBUG
  108. void CAutoClickDoc::AssertValid() const
  109. {
  110.     CDocument::AssertValid();
  111. }
  112.  
  113. void CAutoClickDoc::Dump(CDumpContext& dc) const
  114. {
  115.     CDocument::Dump(dc);
  116. }
  117. #endif //_DEBUG
  118.  
  119. /////////////////////////////////////////////////////////////////////////////
  120. // CAutoClickDoc commands
  121.  
  122. void CAutoClickDoc::OnEditChangetext() 
  123. {
  124.     CChangeText dlg;
  125.     dlg.m_str = m_str;
  126.     if (dlg.DoModal())
  127.     {
  128.         m_str = dlg.m_str;
  129.         Refresh();
  130.     }
  131. }
  132.